#ifndef _H_S_SERVICE_ADAPTER_ID_H_
#define _H_S_SERVICE_ADAPTER_ID_H_

#include "../typedefine.h"

namespace QWER
{
	QTEMPLATE<typename T> QCLASS CMPSCQueue;
	QCLASS IServiceFrontend;
	QCLASS IServiceMsg;

	QDLL_EXPORT QSTRUCT SServiceFrontendID
	{
#ifndef _USING_CLI
	public:
		SServiceFrontendID(){}
#endif
		UINT64 ToUINT64() QCONST_FUNC { return m_qwID; }
#ifdef _USING_CLI
	internal:
#else
	private:	
		friend QCLASS CServiceFrontendHelper;
		friend class CServiceBackendHelper;
#endif
		SServiceFrontendID(UINT64 qwID, PTR(CMPSCQueue<IServiceMsg*>) poPipe, PTR(IServiceFrontend) poServiceFrontend);

		QINIT_ONLY UINT64 STRUCT_MEMBER_DEFINE(m_qwID, 0);
		QINIT_ONLY PTR(CMPSCQueue<IServiceMsg*>) STRUCT_MEMBER_DEFINE(m_poPipe, NULL_PTR);
		QINIT_ONLY PTR(IServiceFrontend) STRUCT_MEMBER_DEFINE(m_poServiceAdapter, NULL_PTR);
	};
}

#endif
